Channel architectures of conventional solid-state drives have adaptable codeword lengths for error correcting codes. The adaptation allows the codewords to fit in a length of a page more easily. For example, a widely used page length for a solid-state drive is 71,487 bits. A commonly used commercial error correction code is a Bose Chaudhuri Hocquenghem (i.e., BCH) code with a codeword length of 8,936 bits. To fit in the page length, 8 BCH codewords are used, where the first 7 codewords have lengths of 8,936 bit, and the last codeword is adjusted to have a length of 8,935 bits.
Polar codes are a family of error correction codes which has been theoretically proved to be capacity-achieving. However, the codewords of polar codes are problematic to adapted to the common page lengths for flash channels. The current polar codes specify a length of each codeword be an integer power of two. Thus, for example, conventional polar codewords of the same length do not efficiently fill a 71,487-bit flash page. Furthermore, methods for converting a random bit sequence to a codeword for polar codes is unknown, making performance analysis of the polar codes using simulation challenging with real flash data collected from characterization platforms.